package com.ym.medical.service;

import com.github.pagehelper.PageInfo;
import com.ym.core.utils.tkmybatis.IBaseSV;
import com.ym.medical.domain.entity.HospitalDeptEntity;
import com.ym.medical.domain.param.HospitalDeptQryParam;
import com.ym.medical.domain.param.HospitalDeptQueryParam;
import com.ym.medical.domain.param.HospitalDeptUpdateParam;
import com.ym.medical.domain.vo.HospitalDeptListPcVO;
import com.ym.medical.domain.vo.HospitalDeptVo;
import com.ym.medical.domain.vo.HospitalDeptVo2;

import java.util.List;
import java.util.Map;

/**
 * 【请填写功能名称】Service接口
 *
 * @author ym
 * @date 2020-08-20
 */
public interface IHospitalDeptSV extends IBaseSV<HospitalDeptEntity> {

	/**
	 * 查询【请填写功能名称】列表
	 *
	 * @param queryParam 【请填写功能名称】 查询对象
	 * @return 【请填写功能名称】集合
	 */
	List<HospitalDeptListPcVO> selectListPC(HospitalDeptQueryParam queryParam);


	/**
	 * 新增【请填写功能名称】
	 *
	 * @param updateParam 【请填写功能名称】 新增对象
	 * @return 结果
	 */
	Long insertPC(HospitalDeptUpdateParam updateParam);

	/**
	 * 修改【请填写功能名称】
	 *
	 * @param updateParam 【请填写功能名称】 修改参数
	 * @return 结果
	 */
	int updateByIdPC(HospitalDeptUpdateParam updateParam);
	/**
	 * 医院code 查询对应医院科室
	 * @param hosCode
	 * @return
	 */
    List<HospitalDeptEntity> selectDept(String hosCode);
	/**
	 * 科室下拉搜索
	 * @param hosName
	 * @param deptName
	 * @return
	 */
    List<HospitalDeptEntity> searchDept(String hosName, String deptName);
	/**
	 * 科室列表
	 * @param pageNo
	 * @param limit
	 * @param hospitalDeptModel
	 * @return
	 */
    PageInfo<HospitalDeptVo> getHospitalDeptList(int pageNo, int limit, HospitalDeptQryParam hospitalDeptModel);
	/**
	 * 科室信息导入
	 * @param hospitalDeptList
	 * @return
	 */
	Map<String, Object> importHosDept(List<HospitalDeptEntity> hospitalDeptList);

	/**
	 * 科室列表信息
	 * @return
	 */
	PageInfo<HospitalDeptVo2> getAllHospitalDept(int pageNo, int limit, HospitalDeptQryParam hospitalDeptModel);
	/**
	 * 科室更改
	 * @param hospitalDept 科室信息
	 * @return
	 */
    int updateHosDept(HospitalDeptEntity hospitalDept);
	/**
	 * 科室新增
	 * @param hospitalDept
	 * @return
	 */
	int addHosDept(HospitalDeptEntity hospitalDept);
}
